package com.example.demo.jucConcurrent.ThreadSynchronized01;

/**
 * 关注monitoreter和monitorexit即可
 * monitor和monitor指令,会让对象在执行,使其计数器加1或者键1,每个对象在痛一时间只与一个monitor(suo
 * (锁)相关,而Monitor在同一个时间只能被一个线程访问,一个对象尝试获得与这个对象关联的
 * Monitor锁的所有权的时候,monitor指令会发生如下3中
 *
 * monitor指令释放对于monitor的所有权,释放过程很简单,就是讲monitor的计数器减1如果减完以后,计数器不为0,
 * 则代表刚才是重入进来的,当前线程还继续把持有这把锁
 *
 * 可重入锁:枷锁次数计数器
 * 上面的demo中在执行同步代码块之后紧接着会去执行一个静态同步方法,而这个方法锁的对象依然就这个类对象,
 * 那么这个正在执行的线程还需要获取该锁?答案是不必,从上图中可以看出,执行静态同步方法的时候就是只有一条monitorexit指令,并没有monitorenter获取锁的指令
 * 这就是锁的重入性,即在同一个锁中,线程不需要再次获取同一把锁
 */
public class SynchronizedDemo2 {
}
